Getting Started - Building the plugin

From RidgeRun Developer Wiki

Follow Us On Twitter LinkedIn Email Share this page







Preferred Partner Logo 3 Partner Program Banner





Dependencies

GStreamer Browser Sink needs the following dependencies:

  • GStreamer development files
  • Libsoup development files
  • Libnice development files
  • GStreamer plug-ins (to run the pipeline)
  • Build utilities (meson, ninja, compilers, etc...)

In debian-based systems you can run:

sudo apt install \
  pkg-config \
  libgstreamer1.0-dev \
  libsoup-3.0-dev \
  libnice-dev \
  libssl-dev \
  gstreamer1.0-plugins-base \
  gstreamer1.0-plugins-good \
  gstreamer1.0-plugins-bad \
  gstreamer1.0-plugins-ugly \
  gstreamer1.0-libav \
  gstreamer1.0-nice \
  gstreamer1.0-tools gstreamer1.0-x \
  ninja-build build-essential

Meson needs to be installed from PIP:

sudo -H pip install meson

Building the project

Once the dependencies have been met you can clone the repository. You can run a default compilation with the following:

meson setup builddir --prefix /usr
meson compile -C builddir
sudo meson install -C builddir

You can check the installation of the plugin as follows.

 gst-inspect-1.0 rrbrowsersink

The expected output will start as follows

Factory Details:
  Rank                     none (0)
  Long-name                RidgeRun Browser Sink
  Klass                    Sink/Video/Network
  Description              Render low-latency streams to a browser window
  Author                   Michael Gruner <michael.gruner@ridgerun.com>

Plugin Details:
  Name                     rrbrowsersink
  Description              RidgeRun Browser Sink
  Filename                 /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstrrbrowsersink.so
  Version                  0.1.0
  License                  Proprietary
  Source module            gst-rr-browser-sink
  Binary package           RidgeRun
  Origin URL               https://ridgerun.com

Troubleshooting

Troubleshooting

Problems During Build Phase

If you run into any problem during the build phase, please send the following information to support@ridgerun.com :

  • The contents of builddir/meson-logs/meson-log.txt
  • The terminal output showing the build error.
  • The output of the following:
pkg-config --modversion gstreamer-1.0
pkg-config --modversion glib-2.0
pkg-config --modversion nice
pkg-config --modversion libsoup-3.0

Problems During Inspection Phase

1. If you run into any problem during the gst-inspect-1.0 execution, please start by regenerating the GStreamer cache and re-inspecting the element, as shown below:

rm ~/.cache/gstreamer-1.0/registry.*.bin
get-inspect-1.0 rrbrowsersink

If that should the expected output then you're good and there's no need to proceed with the next steps.

2. If regenerating the cache doesn't help, then send the following information to support@ridgerun.com :

echo "GStreamer version"
gst-launch-1.0 --gst-version
echo "GStreamer default plugin path"
gst-inspect-1.0 identity | grep Filename
echo "GStreamer env usr path: $GST_PLUGIN_PATH"
echo "GStreamer env sys path: $GST_PLUGIN_SYSTEM_PATH"
echo "Direct plugin inspect"
gst-inspect-1.0 /usr/lib/$(uname -m)-linux-gnu/gstreamer-1.0/libgstrrbrowsersink.so